from flask import current_app, jsonify
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from info import db, create_app
from config import DevelopmentConfig, ProductionConfig
from info import models
from info.models import User

# 通过ｃｒｅａｔｅ_ａｐｐ传递不同的配置信息来实现不同的ｍａｎａｇｅｒ启动模式
from info.utils.response_code import RET

app = create_app(DevelopmentConfig)

# 创建ｍａｎａｇｅｒ
manager = Manager(app)

# 创建迁移对象
Migrate(app, db)

# 给Ｍａｎａｇｅｒ绑定迁移命令
manager.add_command('db', MigrateCommand)

# 自定义创建管理员用户的命令

@manager.option('-n', '-name', dest='name')
@manager.option('-p', '-password', dest='password')
def cretesuperuser(name,password):
    if not all([name,password]):
        print('参数不足')
    # 创建用户，并设置is_admin属性有值
    user = User()
    user.nick_name = name
    user.mobile = name
    user.password = password
    user.is_admin = True
    try:
        db.session.add(user)
        db.session.commit()
    except Exception as e:
        db.session.rollback()
    print('添加成功')


if __name__ == '__main__':
    print(app.url_map)
    manager.run()